///////////////////////////////////////////////////////////////////////////////
//-----------------------------------------------------------------------------
#ifndef __VEC3_H__
#define __VEC3_H__
//-----------------------------------------------------------------------------

#include <Config.h>

//-----------------------------------------------------------------------------

class Vec3  
{

public:

					Vec3(f32 x, f32 y, f32 z);
					Vec3(const Vec3 &v);
					Vec3();
					~Vec3();

	Vec3 operator +(const Vec3 &v);
	Vec3 operator -(const Vec3 &v);
	Vec3 operator *(const Vec3 &v);
	Vec3 operator *(f32 t);
	Vec3 operator /(f32 t);
	Vec3 operator -(void);

	f32				length();
	void			normalize();
	f32				innerProduct(const Vec3  &v);
	void			copy(const Vec3 &v);
	void			set(f32 x,f32 y, f32 z);
	Vec3			scalarMult(f32 a);

#if	defined(DEBUG)
	void			print();
#endif

//private:

	f32 x;
	f32	y;
	f32 z;

};

#endif	//	__VEC3_H__
//-----------------------------------------------------------------------------
///////////////////////////////////////////////////////////////////////////////
